#include <iostream>

// 函数默认参数
int func(int a, int b = 20, int c = 30){
    return a + b + c;
}
// 声明和实现只能有一个有默认参数

//占位参数
void func2(int){
    std::cout<< "占位" << std::endl;
}

//函数重载
// 函数的返回值不可以作为函数重载的条件
void add(int a, int b){
    std::cout<< a + b << std::endl;
}
void add(double a, double b){
    std::cout<< a + b << std::endl;
}

// 引用作为函数的重载条件
int func3(int &a){
    std::cout <<"引用"<<std::endl;
    return 0;
}
int func3(const int &a){
    std::cout << "const引用"<<std::endl;
    return 0;
}

// 函数重载碰到默认参数
// int func4(int a){
//     std::cout <<"func4(int a):"<<std::endl;
//     return 0;
// }
// int func4(int a, int b = 10){
//     std::cout << "func4(int a, int b):"<<std::endl;
//     return 0;
// }


int main()
{
    // std::cout<< func(10) << std::endl;
    // add(1, 2);
    // add(1.0, 2.0);
    
    // int a = 10;
    // func3(a);
    // func3(20);

    // func4(10);

    
    return 0;
}